﻿namespace Pyramid.Hardware
{
    using System;

    /// <summary>
    /// Represents the output of a uni-directional, tri-state (high/middle/low)
    /// electronic connection.
    /// </summary>
    public interface ILine
    {
        /// <summary>
        /// Gets the current output of the line.
        /// </summary>
        Trivalent Signal { get; }

        /// <summary>
        /// Raised whenever the current output of the line changes.
        /// </summary>
        event EventHandler<SignalChangeEventArgs> SignalChange;
    }
}
